package cn.iocoder.yudao.module.system.convert.auth;

import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.client.Oauth2ClientCreateReqVO;
import cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.client.Oauth2ClientRespVO;
import cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.client.Oauth2ClientUpdateReqVO;
import cn.iocoder.yudao.module.system.dal.dataobject.oauth2.Oauth2ClientDO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;

import java.util.List;

/**
 * OAuth2 客户端 Convert
 *
 * @author 芋道源码
 */
@Mapper
public interface Oauth2ClientConvert {

    Oauth2ClientConvert INSTANCE = Mappers.getMapper(Oauth2ClientConvert.class);

    /**
     * 转换
     *
     * @param bean bean
     * @return {@code Oauth2ClientDO}
     */
    Oauth2ClientDO convert(Oauth2ClientCreateReqVO bean);

    /**
     * 转换
     *
     * @param bean bean
     * @return {@code Oauth2ClientDO}
     */
    Oauth2ClientDO convert(Oauth2ClientUpdateReqVO bean);

    /**
     * 转换
     *
     * @param bean bean
     * @return {@code Oauth2ClientRespVO}
     */
    Oauth2ClientRespVO convert(Oauth2ClientDO bean);

    /**
     * 转换列表
     *
     * @param list 列表
     * @return {@code List<Oauth2ClientRespVO>}
     */
    List<Oauth2ClientRespVO> convertList(List<Oauth2ClientDO> list);

    /**
     * 转换分页
     *
     * @param page 分页
     * @return {@code PageResult<Oauth2ClientRespVO>}
     */
    PageResult<Oauth2ClientRespVO> convertPage(PageResult<Oauth2ClientDO> page);

}
